<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Lop extends MY_Controller {

	public $data 	= 	array();
 	public $_template = array();
	public function __construct() {
		//parent::Controller();
		parent::__construct(); //for CI 2.x users 
		$this->load->module_model('member', 'qlsv_model', 'lop');
		$this->load->module_language('member', 'qlsv');
		$this->load->module_model('member', 'ketquahoctap_model', 'kqht');
		$this->load->module_model('member', 'bangdiem_model', 'bangdiem');
		$this->load->library('basic_library');
		$this->load->helper('text');
		$this->user = $this->access->get_user();
		$this->load->helper('url');
		$this->access->restrict();
	}
	
	/*
	 * add more functions to help teacher manage student
	 * Type: Ajax
	 * Added date: 02/11/2014
	 * Added by: ManhVT
	 */
	public function fbaoluu()
	{
		$id = $this->input->post('id');
		$return_id = $this->lop->fbaoluu($id);		
		if($return_id > 0)
		{
			$status = 1;
		}
		else
		{
			$status = 0;
		}
		echo json_encode(array('status' => $status,'return_id'=>$return_id));
	}
	public function fdunghoc()
	{
		$id = $this->input->post('id');
		$return_id = $this->lop->fdunghoc($id);		
		if($return_id > 0)
		{
			$status = 1;
		}
		else
		{
			$status = 0;
		}
		echo json_encode(array('status' => $status,'return_id'=>$return_id));
	}
	public function fthoihoc()
	{
		$id = $this->input->post('id');
		$return_id = $this->lop->fthoihoc($id);		
		if($return_id > 0)
		{
			$status = 1;
		}
		else
		{
			$status = 0;
		}
		echo json_encode(array('status' => $status,'return_id'=>$return_id));
	}
	
	
	public function module_nghe()
	{
		$this->lop->diff_array();
	}
	
	public function ajax_search_student()
	{
		$return = '';
		$keyword = $this->input->post('keyword');
		$result = $this->lop->ajax_search_student($keyword);
		
		$return = $this->generate_ajax_search_student($result);
		echo json_encode(array('return_data'=>$return));
	}
	
	
//HTML ajax search Student
	public function generate_ajax_search_student($result)
	{
		$html = "";	
		$html = $html . '<table cellpadding="1" cellspacing="1" id="resultTable" style="width: 100%">
		<thead>  
    	<tr>  
      		<th class="ta-center">STT</th>
			<th>MÃ HV</th>
      		<th>Họ và tên</th>
      		<th>CMND</th>
			<th>Ngày sinh</th>
			<th class="ta-center">X</th>
      	</tr>  
  		</thead>';
		$html = $html . '<tbody>';
		$stt = 1;
		if($result != null)
		{
			foreach($result as $data):
			

				$html = $html . '<tr id="srcid_'.$data['id'].'" class="noadded">';
				$html = $html . '<td class="ta-center">'.$stt++.'</td>';
				$html = $html . '<td>'.$data['mahv'].'</td>';
				$html = $html . '<td><a title="'. $data['cmnd'].'-'.date('d/m/Y', strtotime($data['ngaysinh'])).' - '.$data['nguyenquan'].'">'. $data['tenhv'].'</td>';
				$html = $html . '<td>'. $data['cmnd'].'</td>';
				$html = $html . '<td>'. date('d/m/Y', strtotime($data['ngaysinh'])).'</td>';
				$html = $html . '<td class="ta-center"> <label id="srcact-'.$data['id'].'"><a onclick="moveToRightOrLeft(1,'.$data['id'].',\''.$data['mahv'].'\','.$data['cmnd'].',\''.$data['tenhv'].'\',\''.date('d/m/Y', strtotime($data['ngaysinh'])).'\');">[+]</a></label>';
				$html = $html . '</td></tr>';
			endforeach;
		}
		
		else {

			$html = $html . '<tr class="noadded">';
			$html = $html . '<td colspan="5">Không tìm thấy Kết quả phù hợp với từ khóa tìm kiếm!</td></tr>';
		}
		$html = $html . '</tbody>';
	
	
		return $html;
	}
	
	// Lưu phân môn
	public function savephanmon()
	{
		$id = $this->input->post('id');
		$saveString= $this->input->post('savestring');
		//$saveString = 'mon_97|gv_29;mon_97|gv_4;mon_98|gv_29;mon_98|gv_4';
		$array = array();
		
		$expl = explode(';',$saveString);
		if(count($expl) > 0)
		{
			foreach($expl as $i)
			{
				$arr = explode('|',$i);
				$mon_id = explode('_',$arr[0]);
				$item['mon_id'] = $mon_id[1];
				for($j=1;$j<count($arr);$j++)
				{				
					$gv_id = explode('_',$arr[$j]);
					$item['gv_id'][$j] = $gv_id[1];
				}
				$array[] = $item;
			}
			
			if($this->lop->savephanmon($id,$array))
			{
				
				$status = 1;
			}
			else
			{
				$status = 0;
			}
			echo json_encode(array('status' => $status));
		}
		else {
			$status = 0;
			echo json_encode(array('status' => $status));
	
		}
	}
	//Tiến hành phân môn cho lớp, update vào bảng phân môn
	public function phanmon($id=null)
	{
		$data['ItemID'] = 'User';
		$data['title'] = 'Phân môn: Giáo viên, Lớp học, Môn học';
		$data['description'] = 'Phân môn: Giáo viên, Lớp học, Môn học';
		$data['idlop'] = $id;
		//$data['allsubject'] = $this->lop->get_all_monhoc_unlimit(); // Không dùng hàm này. Hàm này lấy tất cả môn học.Phải lấy môn học thuộc lớp.
		$data['allsubject'] = $this->lop->get_monhoc_of_class_by_id($id);
		$data['allteacher'] = $this->lop->get_all_giaovien(); // Cần phân theo khoa, cho tiện, nhóm theo khoa
		$data['classinfo'] = $this->lop->get_lop_info($id);
		
		$this->_template['page']	= 'users/lop/phanmon';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	/*
	 * Hỗ trợ việc hiển thị lớp theo năm
	 */
	
	public function classbyyear($year=null)
	{
		$data['ItemID'] = 'User';
		$data['title'] = 'Danh sách Sinh viên';
		$data['description'] = 'Quản lý danh sách Sinh viên';
		
		$this->access->restrict();
		$this->load->library('basic_library');
		$this->load->library('pagination');
		
		$config = array();
		$config['base_url'] = base_url().'member/lop/classbyyear/'.$year;
		$config['total_rows'] = $this->lop->count_all_lop_by_year($year);
		$config['per_page'] = 50;
		$config['uri_segment'] = 5;
		$config['num_links'] = 5;
		$config['first_link'] = 'Đầu tiên';
		$config['last_link'] = 'Cuối cùng';
		$config['next_link'] = 'Tiếp theo';
		$config['prev_link'] = 'Trang trước';
		$this->pagination->initialize($config);
		$page = ($this->uri->segment(5))? $this->uri->segment(5):0;
		$data['sotrang']	=	$this->uri->segment(5);
		if(in_array($year, array(2010,2011,2012,2013,2014)))
		{
			$data['alllop'] = $this->lop->get_all_lop_by_year($year, $config['per_page'], $page);
		}else 
		{
			$data['alllop'] = $this->lop->get_all_lop($config['per_page'], $page);
		}
		//var_dump($this->lop->count_all_lop_by_year($year));
		$data['links'] = $this->pagination->create_links();
		
		$this->_template['page']	= 'users/lop/list';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	/*
	 * ADDED MANHVT
	 * Hỗ trợ việc hiển thị thông tin lớp và chỉ học viên, các chức năng xuất, nhập điểm....
	 */
	
	public function view($lopid)
	{
		$data['lopid'] = $lopid;
		$data['ItemID'] = 'User';
		$data['title'] = 'Xem thông tin về lớp học';
		$data['description'] = 'Xem thông tin về lớp học';
		$data['class_info'] = $this->lop->get_lop_info($lopid);
		$data['student_of_class'] = $this->lop->get_student_of_class_by_id($lopid);
		
		$this->form_validation->set_rules('soluong', 'Số lượng', '');
		$this->form_validation->set_error_delimiters('', '<br />');
		
		$this->_template['page']	= 'users/lop/view';
		$this->system_library->load($this->_template['page'], $data);
	}

 
	public function index() 
	{
		$data['ItemID'] = 'User';
		$data['title'] = 'Danh sách Sinh viên';
		$data['description'] = 'Quản lý danh sách Sinh viên';
		
		$this->access->restrict();
		$this->load->library('basic_library');
		$this->load->library('pagination');
		
		$config = array();
		$config['base_url'] = base_url().'member/lop/index';
		$config['total_rows'] = $this->lop->count_all_lop();
		$config['per_page'] = 100;
		$config['uri_segment'] = 4;
		$config['num_links'] = 5;
		$config['first_link'] = 'First';
        $config['last_link'] = 'Last';
        $config['next_link'] = 'Next';
        $config['prev_link'] = 'Prev';
		$this->pagination->initialize($config);
		$page = ($this->uri->segment(4))? $this->uri->segment(4):0;
		$data['sotrang']	=	$this->uri->segment(4);
		$data['alllop'] = $this->lop->get_all_lop($config['per_page'], $page);
		$data['links'] = $this->pagination->create_links();		
		
		$this->_template['page']	= 'users/lop/list';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	public function add()
	{
		$data['ItemID'] = 'User';
		$data['title'] = 'Thêm mới Lớp';
		$data['description'] = 'Thêm mới Lớp';

		$this->load->helper('form');
		$data['khoa'] = $this->lop->get_all_khoa();
		$userid = $this->user->id;
		$lang_working = load_language_working();
		$data['giaovien']	=	$this->lop->get_all_giaovien();
		//here is validation form
		$this->form_validation->set_rules('malop', 'lang:form_malop', 'required|callback_check_malop');
		$this->form_validation->set_rules('tenlop', 'lang:form_tenlop', 'required|xss_clean|trim');
		$this->form_validation->set_rules('khoa', 'Khoa trực thuộc', 'required');
		$this->form_validation->set_rules('giaovien', 'Giáo viên chủ nhiệm', 'required');
		$this->form_validation->set_rules('nambatdau','Thời gian bắt đầu','required|callback_date_check');
		$this->form_validation->set_rules('namketthuc','Thời gian kết thúc','required|callback_date_check');
		$this->form_validation->set_error_delimiters('', '<br />');

		if ($this->form_validation->run() == TRUE)
		{		
			$this->lop->add_lop();
			$this->session->set_flashdata('message', lang('successfully_created'));	
			redirect('member/lop/', 'refresh');
		}	
		
		$this->_template['page']	= 'users/lop/add';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	public function check_malop()
	{
        if($this->lop->check_malop())
        {
            $this->form_validation->set_message('check_malop','Mã lớp đã tồn tại, vui lòng chọn lại');
            return false;
        }
        else
        {
            
            return true;
        }
    }
    
    function date_check($date) 
	{
    	$ddmmyyy='(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.](19|20)[0-9]{2}';
    	if(preg_match("/$ddmmyyy$/", $date))
    	{
      		return TRUE;
    	} else
    	{
     		$this->form_validation->set_message('date_check', 'Nhập định dạng ngày tháng dd/mm/yyyy');
     	return FALSE;
    	}
	}  
	
	//Edit class
	public function edit($id)
	{
		//metadata
		$this->load->library('basic_library');
		$data['ItemID']		 = 'User';
		$data['title']		 = "Sửa thông tin sinh viên"; 
		$data['description'] = "Sửa thông tin sinh viên"; 
		$data['lopinfo'] 	= $this->lop->get_lop_info($id);
		$data['khoa'] 		= $this->lop->get_all_khoa();
		$data['giaovien']	=	$this->lop->get_all_giaovien();
		$this->form_validation->set_rules('tenlop', 'lang:form_tenlop', 'required|xss_clean|trim');
		$this->form_validation->set_rules('khoa', 'Khoa trực thuộc', 'required');
		$this->form_validation->set_rules('giaovien', 'Giáo viên chủ nhiệm', 'required');
		$this->form_validation->set_rules('nambatdau','Thời gian bắt đầu','required|callback_date_check');
		$this->form_validation->set_rules('namketthuc','Thời gian kết thúc','required|callback_date_check');		
		$this->form_validation->set_error_delimiters('', '<br />');
		
		if($this->form_validation->run() == TRUE)
		{
			$this->lop->edit_lop($id);
			$this->session->set_flashdata('message', 'Cập nhật Lớp thành công!');	
			redirect('member/lop/', 'refresh');	
		}	
		$this->_template['page']	= 'users/lop/edit';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	public function search()
	{
		$data['ItemID'] = 'User';
		$data['title'] = 'Tìm kiếm thông tin';
		$data['description'] = 'Tìm kiếm thông tin';
		$this->load->library('pagination');
		$config['base_url'] = base_url().'member/lop/search';
		$config['total_rows'] = $this->lop->count_all_lop();
		$config['per_page'] = 100;
		$config['uri_segment'] = 4;
		$config['num_links'] = 5;
		$config['first_link'] = 'Đầu tiên';
        $config['last_link'] = 'Cuối cùng';
        $config['next_link'] = 'Tiếp theo';
        $config['prev_link'] = 'Cuối cùng';
		$this->pagination->initialize($config);
		$page = ($this->uri->segment(4))? $this->uri->segment(4):0;
		$data['sotrang']	=	$this->uri->segment(4);
		
		$data['search_keyword'] = $this->input->post('keyword', TRUE);
		if($data['search_keyword']!=='')
		{
			$data['result'] = $this->lop->search_data_lop($data['search_keyword'],$config['per_page'], $page);
			$data['links'] = $this->pagination->create_links();	
			$this->_template['page']	= 'users/lop/result';
			$this->system_library->load($this->_template['page'], $data);
		}
		else
		{
			redirect('lop', 'refresh');
		}
	}
	
	public function enable($id = null)
	{
		if ($id == null)
		{
			$id = $this->input->post('id');
		}
			
		$this->lop->change_status_lop($id,1);
		redirect('member/lop', 'refresh');
		
	}
	public function disable($id = null)
	{
		if ($id == null)
		{
			$id = $this->input->post('id');
		}
			
		$this->lop->change_status_lop($id,0);
		redirect('member/lop', 'refresh');
	}
	
	public function lockhv($id = null)
	{
		if ($id == null)
		{
			$id = $this->input->post('id');
		}
			
		$this->lop->lockhv($id,1);
		redirect('member/lop', 'refresh');
	}
	
	public function lockmh($id = null)
	{
		if ($id == null)
		{
			$id = $this->input->post('id');
		}
			
		$this->lop->lockmh($id,1);
		redirect('member/lop', 'refresh');
	}
	
	public function add_hocvien_to_lop($lopid)
	{
		//$this->access->restrict('Member.Vattu.Add');
		$data['lopid'] = $lopid;
		$data['ItemID'] = 'User';
		$data['title'] = 'Biên chế Học viên vào lớp';
		$data['description'] = 'Biên chế học viên vào lớp';
		$data['allhocvien'] = $this->lop->get_all_hocvien_by_year();
		$data['class_info'] = $this->lop->get_lop_info($lopid);
		$data['student_of_class'] = $this->lop->get_student_of_class_by_id($lopid);
		$this->load->helper('form');
		//$data['dvt'] = $this->vattu->get_dvt_name();
		$userid = $this->user->id;
		$lang_working = load_language_working();
	
		$this->form_validation->set_rules('soluong', 'Số lượng', '');
		$this->form_validation->set_error_delimiters('', '<br />');
	
		// lấy danh sách các vật tư đã được chọn và tách mảng
		$idlist = $this->input->post('listIds');
	
		$results = explode(",", $idlist);
		if($this->form_validation->run() == TRUE)
		{
			// Thực hiện add to
			$id = $this->lop->add_students_to_class($results, $lopid);
			
			$button = $this->input->post('typebutton');
			$this->session->set_flashdata('message', 'Cập nhật thành công!');
			if($button == 1)
			{
				redirect('member/lop/add_hocvien_to_lop/'.$lopid, 'refresh');
			}
			else {
				redirect('member/lop', 'refresh');
			}
			
		}
	
		$this->_template['page']	= 'users/lop/add_hocvien_to_lop';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	
	public function add_monhoc_to_lop($lopid)
	{
		//$this->access->restrict('Member.Vattu.Add');
		$data['lopid'] = $lopid;
		$data['ItemID'] = 'User';
		$data['title'] = 'Biên chế Môn học vào lớp';
		$data['description'] = 'Biên chế Môn học vào lớp';
		$data['alldata'] = $this->lop->get_all_monhoc_unlimit();
		$data['class_info'] = $this->lop->get_lop_info($lopid);
		$data['monhoc_of_class'] = $this->lop->get_monhoc_of_class_by_id($lopid);
		$this->load->helper('form');
		$userid = $this->user->id;
		$lang_working = load_language_working();
	
		$this->form_validation->set_rules('soluong', 'Số lượng', '');
		$this->form_validation->set_error_delimiters('', '<br />');
	
		// lấy danh sách các vật tư đã được chọn và tách mảng
		$idlist = $this->input->post('listIds');
	
		$results = explode(",", $idlist);
		if($this->form_validation->run() == TRUE)
		{
			$id = $this->lop->add_monhoc_to_lop($results, $lopid);
			$button = $this->input->post('typebutton');
			$this->session->set_flashdata('message', 'Cập nhật thành công!');
			if($button == 1)
			{
				redirect('member/lop/add_monhoc_to_lop/'.$lopid, 'refresh');
			}
			else {
				redirect('member/lop', 'refresh');
			}
			
		}
	
		$this->_template['page']	= 'users/lop/add_monhoc_to_lop';
		$this->system_library->load($this->_template['page'], $data);
	}
	
	public function lop_status_exchange()
	{
		$id = $this->input->post('id');
		if($id !==null)
		{
			$data = $this->lop->get_lop_info($id);
			$status = 0;
			if($data -> status=='0')
			{
				$status = 1;
			}
			$this->lop->lop_status_exchange($id, $status);
			$row['result'] = 1;
			$row['status'] = $status;
			echo json_encode($row);
		}
		else
		{
			$row['result'] = 0;
			echo json_encode($row);
		}
	}
	
	public function view_mark_hv($idhv, $idlop)
	{
		$data['ItemID'] = 'User';
		$data['title'] = 'Xem bảng điểm cá nhân';
		$data['description'] = 'Xem bảng điểm cá nhân';
		$data['idlop'] = $idlop;
		$student	=	$this->kqht->get_student_info($idhv);
		$type = $this->bangdiem->get_clType($idlop);
		$data['datamark'] = $this->bangdiem->get_bangdiem_canhan($student,$idlop);
		$data['subjects']	=	$this->bangdiem->get_subject_by_class($idlop,200,1);
		$data['exams']	=	$this->bangdiem->get_subject_by_class($idlop,200,2);
		$data['count'] = $this->bangdiem->count_all_subject_by_class($idlop);
		//echo $type; exit();
		if($type == 1)
		{
			$this->_template['page']	= 'templates/default/layout/pages/users/lop/view_bang_diem_hv_scn';
		}else
		{
			$this->_template['page']	= 'templates/default/layout/pages/users/lop/view_bang_diem_hv';
		}
		$this->load->view($this->_template['page'], $data);
	}
}

/* End of file welcome.php */
/* Location: ./application/controllers/products.php */